package com.hanamaki.array;

import java.util.Arrays;

/**
 * 数组的工具类
 */
public class Demo04 {

    public static void main(String[] args) {

        /* Arrays */
        /* 创建一个数组  */
        int[] arr = {231, 34, 4435, 65, 76, 8, 45, 42, 65, 97, 5645, 443};

        System.out.println(Arrays.toString(arr));
        /* 使用 Arrays 工具类来 对数组中的元素进行排序*/
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));


        /*  调用打印数组的方法 */
        print_array(arr);

        System.out.println();

        /* 调用reverser方法 */
        int[] reverser = reverser(arr);
        print_array(reverser);

    }

    /* 修饰符 [static] 返回值类型 方法名(参数列表){
            方法体
    } */

    /* 返回值类型可以是：基本的数据类型和引用数据类型*/

    /**
     * 想要写 打印数组的方法
     * 数组 做参数传递
     */
    public static void print_array(int[] a) {
        for (int i = 0; i < a.length; i++) {
            if (i == 0) {
                System.out.print("[");
            }
            if (i == a.length - 1) {
                System.out.print(a[i] + "]");
            } else {
                System.out.print(a[i] + ", ");
            }
        }
    }


    /**
     * 编写一个 反转数组的方法
     * <p>
     * 数组作为返回值类型
     */
    public static int[] reverser(int[] a) {

        /* 思路：创建一个 相同大小的数组，将数组中的最小下标方法
        另一个数组中的最大下标  */
        int[] reverser = new int[a.length];
        /* 重新赋值 */
        for (int i = 0, j = a.length - 1; i < reverser.length; i++, j--) {
            reverser[j] = a[i];
        }

        return reverser;
    }


}
